home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / superopt.zip / TODO < prev    next >
Text File  |  1992-06-11  |  2KB  |  46 lines

  1. * I'd like to have a means to define that a goal function is not defined
  2.   for all possible input values.  On extra parameter to DEF_GOAL could take
  3.   care of that.
  4.  
  5.   Also I'd like to add a list of immediate values to try for each goal
  6.   function.  For example, 31 and 32 could be useful for ffs.
  7.  
  8. * Make it possible to handle more immediate values.
  9.  
  10. * Interpret goal functions so the user doesn't need to recompile.
  11.   Interpretation would make goal function evaluation slower than it is now,
  12.   but goal function evaluation is not critical.  It can be made even less
  13.   critical by hacking test_sequence to cache computed values.
  14.  
  15. * Add code to _prove_ that a generated function is correct.
  16.  
  17. * Add bsrl/bsfl and bfffo to CISC synth.
  18.  
  19. * Add some *_CO function to RISC synth.
  20.  
  21. * Check that PERFORM_CLZ works like RS/6000's cntlz and 29k's clz.
  22.   Is it ok for input == 0?
  23.  
  24. * A major speed improvement would be to make independent insn have a
  25.   canonical order.  Consider `gts' on the SPARC.  This is probably not
  26.   very hard, if insns are enumerated in some clever way and loop
  27.   variables are passed down.
  28.  
  29.   After an instruction that sets carry (and there is another instruction
  30.   with the same effect apart from that it doesn't affect carry), the
  31.   generated carry has to be used.  [Fix this with a reservation vector
  32.   --allow both making and deleting a reservation.  Make reservation when
  33.   carry is generated and delete it when it is used.]  The leaf
  34.   instructions have to munch carry if an unused carry is pending.
  35.  
  36.   Make sure all computed values are used by subsequent instructions.  For
  37.   example, if we have just two more values to compute and three yet unused
  38.   values, the last two instructions have to restrict their input operands.
  39.  
  40. * Shift 32 steps on 68k is well-defined.  LSHIFTR_CO can be used to zero a
  41.   word and simultaneously move the sign bit to the X flag, ASHIFTR_CO can
  42.   be used to propagate the sign bit to the whole word and to the X flag.
  43.   Useful?
  44.  
  45. * `386: bt, clc, cmc, cdq[0->1], lea, shld, shrd, stc.
  46.